Yuan Fu [Tue, 15 Oct 2024 02:31:12 +0000 (19:31 -0700)]
Fix c-ts-mode--anchor-prev-sibling (bug#73661)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Fix parentheses and use a
slightly more efficient function.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Replace
the tab in the test code with spaces.
Earl Hyatt [Sun, 13 Oct 2024 17:44:18 +0000 (13:44 -0400)]
Fix formatting of long keyboard macros by 'list-keyboard-macros'.
* lisp/kmacro.el (kmacro-menu--refresh): Include the second
argument of 'format-kbd-macro' so that the formatted keyboard
macro is on a single line. (Bug#73797)
Jørgen Kvalsvik [Fri, 4 Oct 2024 19:38:33 +0000 (21:38 +0200)]
Fix c-ts-mode indentation for initializer lists (bug#73661)
The intentation behavior differed between c-mode/c++-mode
and *-ts-mode for initializer lists where the first element was
not at beginning-of-line. The anchor-prev-sibling function gave
up and returned nil, but it should (probably) anchor on the
first element in the initializer list, such as this:
return { v1, v2, ...,
y1, y2, ... };
c-ts-mode behaved better and figured out how to align, but I
added a test for a similar compound literal to prevent
regressions.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling):
Anchor at first sibling unless bol is found.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New
initializer list and compound literal test.
Eli Zaretskii [Wed, 9 Oct 2024 13:21:08 +0000 (16:21 +0300)]
Avoid segfaults in Rmail-MIME
Rmail-MIME decodes text of email, including removal of
CR characters, but that can segfault if the text of some
MIME part is empty.
* src/coding.c (decode_coding_raw_text):
* lisp/mail/rmailmm.el (rmail-mime-insert-decoded-text): Don't
attempt to decode empty text region.
Yuan Fu [Tue, 8 Oct 2024 00:24:32 +0000 (17:24 -0700)]
Set treesit-primary-parser for tree-sitter modes
I debated whether to do this, since technically speaking it's
not needed for single-language modes. But ultimately it's
better to be explicit and set a good example with builtin modes.
Stefan Kangas [Sat, 5 Oct 2024 23:47:50 +0000 (01:47 +0200)]
Delete XIE X extension from TODO
According to Wikipedia, XIE "is no longer included in the X11 reference
distribution, having been removed with X11R6.7 in 2004."
Ref: https://en.wikipedia.org/wiki/X_Image_Extension
Morgan Willcock [Tue, 24 Sep 2024 18:33:11 +0000 (19:33 +0100)]
Restore comment/string check for 'electric-layout-mode'
This reverts an accidental change which allowed
'electric-layout-mode' to insert newlines inside strings and
comments. The new behavior can be obtained by setting the
new variable 'electric-layout-allow-in-comment-or-string' to a
non-nil value.
* lisp/electric.el (electric-layout-allow-in-comment-or-string):
New variable to determine whether inserting newlines is
permitted within comments or strings.
(electric-layout-post-self-insert-function-1): Restore the
previous default behavior of not inserting newlines within
comments or strings.
Eli Zaretskii [Fri, 4 Oct 2024 13:32:13 +0000 (16:32 +0300)]
Expand email abbrevs in X-Debbugs-Cc header.
* lisp/mail/mailabbrev.el (mail-abbrev-mode-regexp):
* lisp/mail/mailalias.el (mail-address-field-regexp)
(mail-complete-alist): Add "X-Debbugs-Cc" to headers where email
aliases should be expanded, for compatibility with emacsbug.el.
Eli Zaretskii [Fri, 4 Oct 2024 11:39:50 +0000 (14:39 +0300)]
Fix 'list-tags' when invoked from a non-file buffer
This use case was broken by the improvement that attempts to
offer the current buffer's file name as the default file whose
tags to list.
* lisp/progmodes/etags.el
(tags--get-current-buffer-name-in-tags-file): Doc fix. Return nil
if no file is associated with the current buffer, and avoid
signaling an error if 'buffer-file-name' returns nil. (Bug#37611)
(list-tags): Doc fix. Signal an error if the user specifies no
file name at the prompt.
* doc/emacs/maintaining.texi (List Identifiers): Fix wording of
the documentation of 'list-tags'.
Sean Whitton [Fri, 4 Oct 2024 09:28:38 +0000 (17:28 +0800)]
count-windows: Fix reference to walk-windows
* lisp/window.el (count-windows): Refer to walk-windows for the
precise meaning of both the MINIBUF and ALL-FRAMES arguments,
not just the ALL-FRAMES argument. In both functions, these
arguments are both passed through to window-list-1.
john muhl [Sat, 13 Jul 2024 23:36:38 +0000 (18:36 -0500)]
Tag interactive commands in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-send-buffer)
(lua-ts-send-file, lua-ts-send-region): Mark inferior interaction
commands that are only relevant in Lua buffers. (Bug#73586)
Stefan Kangas [Mon, 30 Sep 2024 22:15:08 +0000 (00:15 +0200)]
Change :group of 'eglot' defgroup to 'tools'
In 'M-x customize', Eglot fits in better in "Programming -> Tools", with
the likes of Flymake and Gud, than it does in "Applications", with ERC
and Newsticker.
* lisp/progmodes/eglot.el (eglot): Change :group of defgroup to 'tools'.
Stefan Kangas [Mon, 30 Sep 2024 18:37:27 +0000 (20:37 +0200)]
Remove out-of-date documentation from python.el
* lisp/progmodes/python.el: Remove out-of-date documentation about
automatic indentation; 'electric-indent-mode' is enabled by default in
Emacs 24.4 or later, so this is no longer an issue.
Morgan Willcock [Tue, 24 Sep 2024 19:19:08 +0000 (20:19 +0100)]
Require ert-x for use by 'ert-font-lock-deftest-file'
This fixes a void-function error when 'ert-font-lock-deftest-file'
is called when ert-x has not already been loaded.
* lisp/emacs-lisp/ert-font-lock.el (ert): Require ert-x so that
'ert-resource-file' is available for use within
'ert-font-lock-deftest-file'. (Bug#73254)
Fix php-ts-mode font-lock for latest PHP grammar (bug#73516)
Version 0.23 of the PHP grammar introduced some changes that
affect the font lock.
* lisp/progmodes/php-ts-mode.el
(php-ts-mode--language-source-alist): Update php, html, js and css
grammars version.
(php-ts-mode--parent-html-heuristic): Fix docstring
(php-ts-mode--test-namespace-name-as-prefix-p): New function.
(php-ts-mode--test-namespace-aliasing-clause-p): New function.
(php-ts-mode--test-namespace-use-group-clause-p): New function.
(php-ts-mode--font-lock-settings): Use the new functions.
Stefan Monnier [Fri, 27 Sep 2024 14:35:18 +0000 (10:35 -0400)]
eieio.texi: Fix bug#73505
* doc/misc/eieio.texi (Introduction): Remove "missing features" which
aren't missing any more.
(Generics, Methods): Delete sections.
(Inheritance): Adjust reference accordingly.
(Static Methods): Merge into the parent node.
(Writing Methods): Refer to the ELisp manual for `cl-defmethod/defgeneric`.
Thomas Voss [Wed, 25 Sep 2024 00:17:49 +0000 (02:17 +0200)]
Align columns in which-key with wide characters properly
In the case that a character takes up multple columns (such as
`…' when used as a truncation character), make sure that the
columns are still aligned properly.
* lisp/which-key.el (which-key--pad-column): Use `string-width'
instead of `length'. (Bug#73463)
Use black-on-white by default for doc-view-svg-face.
* lisp/doc-view.el (doc-view-svg-face): Define black on white as
default value instead of using the current theme's values.
* etc/NEWS: Adjust entry for doc-view-svg-face.
etags-regen-file-extensions: Enable for more extensions
* lisp/progmodes/etags-regen.el (etags-regen-file-extensions):
Add more extensions, but remove "a". From the ones recognized by
etags, also omit "t", "ml", "l", "def" and "inc", see
https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00735.html.
(etags-regen--all-files): Use 'string-match-p' for performance.
Bind 'case-fold-search' to t to match extensions in any case.
Stephen Berman [Sat, 21 Sep 2024 20:23:11 +0000 (22:23 +0200)]
Update and improve UI of sql-read-product (bug#73412)
* lisp/progmodes/sql.el (sql-read-product): In invocation of
completing-read use format-prompt and make deprecated argument
INITIAL-INPUT nil.
(sql-set-product, sql-product-interactive): In invocation of
sql-read-product adjust prompt to use of format-prompt.
Insert correct commit data into VC package descriptions
* lisp/emacs-lisp/package-vc.el (package-vc-commit): Rename
argument from PKG to PKG-DESC.
(package-vc--generate-description-file): Update the "extras"
section of the package description with the revision string at
generation time.
Stefan Monnier [Thu, 19 Sep 2024 15:50:26 +0000 (11:50 -0400)]
Fix font-lock of last character before EOB under 'whitespace-mode'
* lisp/whitespace.el (whitespace-color-on): Don't use OVERRIDE in
font-lock-keywords; instead, use 'prepend' in the call to
'font-lock-add-keywords'. (Bug#73332)
Eli Zaretskii [Sat, 21 Sep 2024 10:41:21 +0000 (13:41 +0300)]
Fix 'whitespace-mode' with 'missing-newline-at-eof'
* lisp/whitespace.el (whitespace-post-command-hook): Refontify
when point moves if 'missing-newline-at-eof' is in
'whitespace-active-style'. (Bug#73332)
Eli Zaretskii [Sat, 21 Sep 2024 09:26:24 +0000 (12:26 +0300)]
Fix 'replace-regexp' in WDired
* src/search.c (Freplace_match): Revert the search.c part of the
change from Apr 7, 2024, which aims to fix bug#65451, but causes
bug#73018. Do not merge to master.
* test/src/editfns-tests.el
(editfns-tests--before/after-change-functions): Expect this test
to fail.
Yuan Fu [Sat, 21 Sep 2024 03:40:26 +0000 (20:40 -0700)]
Fix treesit--merge-ranges (bug#73324)
* lisp/treesit.el (treesit--merge-ranges): Make sure that old
ranges that intersects with START-END are actually discarded.
* test/src/treesit-tests.el (treesit-range-merge): New test.
Stefan Kangas [Sat, 21 Sep 2024 00:19:53 +0000 (02:19 +0200)]
Fix midnight-mode documentation
* lisp/midnight.el (Commentary): Document that 'midnight-mode' should be
enabled using the function, instead of by merely loading the library.
In Emacs 31, doing the latter will no longer work. (Bug#73291)
Yuan Fu [Wed, 18 Sep 2024 04:17:13 +0000 (21:17 -0700)]
Conservative heuristic for tree-sitter parser ranges (bug#73324)
* src/treesit.c (treesit_sync_visible_region): If the parser's original
ranges don't overlap with visible region, give it a zero range, rather
than don't set any range.
* test/src/treesit-tests.el (treesit-range-fixup-after-edit): Test new
behavior.
Enable GC_REMEMBER_LAST_MARKED by default (it was disabled in Emacs 29)
to make it easier to debug difficult-to-reproduce GC problems
encountered by users. This increases GC costs by about 5 %, which can
be avoided by turning the mark trace buffer back off using the new
--disable-gc-mark-trace option.
See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2024-09/msg00240.html
* configure.ac (--disable-gc-mark-trace): New config option.
* etc/NEWS: Mention it.
* src/alloc.c: Enable it by default and avoid a compiler warning.